import {defineStore} from "pinia";
import api from '../api/api.js'; // 导入 API 服务

export const detailStore = defineStore({
    id: "detail",
    state: () => ({
        detail: null, // 初始化 posts 为一个空数组
        commentList: [], // 初始化评论列表为空数组

    }),

    actions: {

        async fetchUserInfo(data) {
            // console.log(data, 99999999)



            try {
                const response = await api.post('/detail/', {'id': data}); // 调用登录的 API 接口
                if (response.data.code === 0) {
                    this.detail = response.data.data; // 从响应中设置用户信息
                    this.savepostsToLocalStorage(); // 保存用户信息到本地存储
                    return true; // 表示成功
                } else {
                    return false; // 失败
                }
            } catch (error) {
                this.clear(); // 清除用户信息
                // console.error("获取用户信息失败:", error);
                return false; // 处理错误
            }
            // }

        },
        async addComment(data) {
            try {
                const response = await api.post('/detail/comment', data); // 调用登录的 API 接口
                if (response.data.code === 0) {
                    this.commentList.push(response.data.data); // 从响应中设置用户信息
                    // console.log(this.commentList, 8888888888888888888888888888888);
                    this.savecommentListToLocalStorage(); // 保存用户信息到本地存储
                    this.loadpostsFromLocalStorage(); // 重新加载评论列表
                    return true; // 表示成功
                } else {
                    return false; // 失败
                }
            } catch (error) {
                // console.error("获取用户信息失败:", error);
                return false; // 处理错误
            }

        },
        async fetchcommentList(data) {
            try {
                const response = await api.get('/detail/comment/'+data,); // 调用登录的 API 接口
                if (response.data.code === 0) {
                    this.commentList = response.data.data; // 从响应中设置用户信息
                    this.savecommentListToLocalStorage(); // 保存用户信息到本地存储
                    this.loadpostsFromLocalStorage(); // 重新加载评论列表
                    return true; // 表示成功
                } else {
                    console.log('获取用户信息出错:', response.data.msg);
                    return false; // 失败
                }
            } catch (error) {
                // console.error("获取用户信息失败:", error);
                return false; // 处理错误
            }

        },
        async addSubComment(id, data) {
            try {
                const response = await api.post('/detail/comment', {
                    id: id,
                    comm: data
                }); // 调用登录的 API 接口
                if (response.data.code === 0) {
                    this.commentList.push(response.data.data); // 从响应中设置用户信息

                    this.savecommentListToLocalStorage(); // 保存用户信息到本地存储
                    this.loadpostsFromLocalStorage(); // 重新加载评论列表
                    return true; // 表示成功
                } else {
                    return false; // 失败
                }
            } catch (error) {
                // console.error("获取用户信息失败:", error);
                return false; // 处理错误
            }

        },
        clear() {
            this.detail = null; // 清除详细信息
            this.savepostsToLocalStorage();
        },


        savepostsToLocalStorage() {
            localStorage.setItem('detail', JSON.stringify(this.detail)); // 将用户信息保存到浏览器的本地存储
        },
        savecommentListToLocalStorage() {
            localStorage.setItem('commentList', JSON.stringify(this.commentList)); // 将用户信息保存到浏览器的本地存储
        },

        loadpostsFromLocalStorage(com) {

            const detail = localStorage.getItem('detail'); // 从本地存储读取用户信息
            const commentList = localStorage.getItem('commentList'); // 从本地存储读取用户信息
            if (detail) {
                this.detail = JSON.parse(detail); // 解析 JSON 数据并设置到 state


            }
            if (commentList) {
                this.commentList = JSON.parse(commentList); // 评论列表
            }
        }
    },

    getters: {
        fullName(state) {
            return `${state.detail.firstName} ${state.detail.lastName}`; // 示例：获取用户全名的计算属性
        },
    },
});
